package com.ruoyi.system.domain.bo;

import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;

import java.util.Date;

import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 工单池业务对象 kfn_work_order
 *
 * @author Panda
 * @date 2023-12-20
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class KfnWorkOrderBo extends BaseEntity {

    /**
     * 工单号
     */
    @NotBlank(message = "工单号不能为空", groups = { EditGroup.class })
    private String workOrderId;

    /**
     * 工单类型
     */
    @NotBlank(message = "工单类型不能为空", groups = { AddGroup.class, EditGroup.class })
    private String workOrderType;

    /**
     * 第三方系统单号
     */
    private String thirdSysNumber;

    /**
     * 本单客户联系人
     */
    @NotBlank(message = "本单客户联系人不能为空", groups = { AddGroup.class, EditGroup.class })
    private String contacts;

    /**
     * 本单客户联系电话
     */
    @NotBlank(message = "本单客户联系电话不能为空", groups = { AddGroup.class, EditGroup.class })
    private String contactNumber;

    /**
     * 关联的店铺主键
     */
    @NotBlank(message = "关联的店铺主键不能为空", groups = { AddGroup.class, EditGroup.class })
    private String storeId;

    /**
     * 关联的店铺编号
     */
    private String storeNumber;

    /**
     * 关联的店铺名
     */
    private String storeName;

    /**
     * 关联的店铺类型
     */
    private String storeType;

    /**
     * 关联的店铺地址
     */
    private String storeAddress;

    /**
     * 工单描述
     */
    @NotBlank(message = "工单描述不能为空", groups = { AddGroup.class, EditGroup.class })
    private String workOrderDescription;

    /**
     * 工单状态id
     */
    @NotBlank(message = "工单状态id不能为空", groups = { AddGroup.class, EditGroup.class })
    private String workOrderStatusId;

    /**
     * 工单响应超时
     */
    private Long workOrderResponseTimeOver;

    /**
     * 工单上门超时
     */
    private Long workOrderOnsiteTimeOver;

    /**
     * 工单处理超时
     */
    private Long workOrderProcessingTimeOver;

    /**
     * 关联的项目id
     */
    @NotBlank(message = "关联的项目id不能为空", groups = { AddGroup.class, EditGroup.class })
    private String projectId;

    /**
     * 关联的项目编号
     */
    @NotBlank(message = "关联的项目编号不能为空", groups = { EditGroup.class })
    private String projectNumber;

    /**
     * 关联的项目名
     */
    @NotBlank(message = "关联的项目名不能为空", groups = { EditGroup.class })
    private String projectName;

    /**
     * 工单子状态id
     */
    private String workOrderStatusIdChild;

    /**
     * 工单子状态
     */
    private String workOrderStatusChild;

    /**
     * 下包供应商
     */
    private String subcontractorSupplier;


}
